let DataInfo = (function (){
   
  let baseScoreCols = {
    "cnad":["Music", "Economics", "SocialScience", "Mathematics", "Literature", "Science", "Art"],
    "cnap":["SocialScience", "Mathematics", "Literature", "Science", "Art"],
    "cnat":["SocialScience", "Science", "Art"]
  }
  let scoreCols = {
    "china_cnad":["StudentScore","TeamScore","MathematicalScore","LiteratureScore","SocialScienceScore",
      "分析性写作","通识学术大满贯","学术探究博览","跨学科主题演讲","迷你博物馆","超级问答","全球站进阶总分"],

    "china_cnap":["StudentScore","TeamScore","MathematicalScore","LiteratureScore",
      "分析性写作","通识学术大满贯","学术探究博览","主题演讲","迷你博物馆","超级问答","全球站进阶总分"],

    "china_cnat":["StudentScore","TeamScore","通识学术大满贯","学术探究博览","创意演讲","迷你博物馆","超级问答"],

    "global_cnad":["StudentScore","TeamScore",
      "通识学术大满贯","学术探究博览","跨学科主题演讲","超级问答",
      "U20团队总分","U20跨文化协同","U20解决方案创新","U20洞察与批判性思维","青年领袖个人总分"],

    "global_cnap":["StudentScore","TeamScore",
      "通识学术大满贯","学术探究博览","跨学科主题演讲","超级问答",
      "U20团队总分","U20跨文化协同","U20解决方案创新","U20洞察与批判性思维","青年领袖个人总分"],
  }
  let sheetDataInfo = {
    "分析性写作":{"sheetName": "分析性写作","scoreCols": ["分析性写作个人总分"]},
    "超级问答":{"sheetName": "超级问答","scoreCols": ["超级问答团队总分"]},
    "跨学科主题演讲":{"sheetName": "跨学科主题演讲","scoreCols": ["跨学科主题演讲团队总分"]},
    "学术探究博览":{"sheetName": "学术探究博览","scoreCols": ["学术探究博览团队总分"]},
    "迷你博物馆":{"sheetName": "迷你博物馆","scoreCols": ["迷你博物馆团队总分"]},
    "主题演讲":{"sheetName": "主题演讲","scoreCols": ["主题演讲团队总分"]},
    "创意演讲":{"sheetName": "创意演讲","scoreCols": ["创意演讲团队总分"]},
    "U20":{"sheetName": "U20","scoreCols": ["U20团队总分","U20跨文化协同","U20解决方案创新","U20洞察与批判性思维"]},
  }
  
  let getDataInfo = (type)=>{
    let dataInfoNew = JSON.parse(JSON.stringify(BaseDataInfo));
    let first = DataUtils.get("first");
    let second = DataUtils.get("second");
    let studentScores = baseScoreCols[second];
    let myDataStudentHandler = ()=>{};
    let myDataTeamHandler = ()=>{};
    let myDataHandler = ()=>[];
    let queryStudentTemplate = "";
    let errorList = [];    
    let studentAwardsQueryScores = ["StudentScore","TeamScore","MathematicalScore","LiteratureScore"];
    let studentQueryScores = ["MathematicalScore","LiteratureScore","StudentScore","TeamScore"];
    if (first != "pre"){
      studentAwardsQueryScores = scoreCols[type];
      studentQueryScores = scoreCols[type];
    }
    let splitAreaData = (myData,key)=>{      
        (dataInfoNew.areas || []).forEach(area => {
          let items = (myData[key]|| []).filter(t => t.SchoolRegion == area);
          myData[key+"."+area] = items;
        });        
    }
    let getNewData = (name,excelData,dataMap,columnMap,idName="id")=>{      
      let list = excelData[name];
      let listNew = [];      
      (list||[]).forEach(item => {
        let find = dataMap[item[idName]];
        if (!find){
          errorList.push(name+",发现未知的"+idName,+", "+item[idName]);
          return;
        }
        for(let k in columnMap){
          find[k] = item[columnMap[k]];
        }        
        listNew.push(find);
      });
      return listNew;
    }
    let promoteFilter = (teamList)=>{
      teamList.forEach(item=>{
        item["SchoolNumber"] = item.data.SchoolNumber;
      })
      let group = teamList.groupBy(["SchoolNumber"]);
      let filterList = [];
      (group || []).forEach(g => {
        let list = (g["items"] || []).sortByLimit("Score desc", 2);
        filterList.push(...list);
      });
      return filterList;
    }
    let addU20TeamNumber = ()=>{
      dataInfoNew.dataInfos.student.fullCols.splice(3,0,"U20TeamNumber");
      dataInfoNew.teamCols.splice(1,0,"U20TeamNumber");
      dataInfoNew.queryInfo.awards.studentCols.splice(3,0,"U20TeamNumber");
      dataInfoNew.queryInfo.studentAwards.studentCols.splice(3,0,"U20TeamNumber");
      dataInfoNew.queryInfo.student.studentCols.splice(6,0,"U20TeamNumber");
      dataInfoNew.studentCols.splice(3,0,"U20TeamNumber");
    }
    let initU20Team = (excelData,myData)=>{
      let studentList = myData["student"];      
      let teamList = studentList.groupBy("U20TeamNumber");
      let teamCols = dataInfoNew.teamCols;
      let errorList= [];
      (teamList || []).forEach(v => {
        try {
          let firstItem = v["items"][0];

          teamCols.forEach(name => {
            v[name] = firstItem[name];
          });
          v["Name"] = firstItem["School_Cn"] + "(" + firstItem["U20TeamNumber"] + ")";
          v["Names"] = v["items"].map((item) => item.FirstName + " " + item.LastName).join(" / ");
          v["_id"] = firstItem["U20TeamNumber"];
          v["id"] = v["_id"];                              

        } catch (e) {          
          errorList.push({ name:"Student", pos:0, error:"初始化U20团队数据时异常,error:" + e.message, type:"error" });
        }

      });
      myData["u20Team"] = teamList;
      return errorList;
    }
    if (type == "pre_cnad"){
      myDataStudentHandler = (item)=>{
        // 数理分数：数学+科学
        item["MathematicalScore"] = item["Mathematics"] + item["Science"];
        // 人文分数：社科+文学+音乐+艺术
        item["LiteratureScore"] = item["SocialScience"] + item["Literature"] + item["Music"] + item["Art"];
        item["MathematicalScore"] = toNumber(toRoundFixed(item["MathematicalScore"]));
        item["LiteratureScore"] = toNumber(toRoundFixed(item["LiteratureScore"]));
      };
      
      queryStudentTemplate ="html/pre/query/student.pre.cnad.xlsx";
    }else if (type == "pre_cnap"){
      myDataStudentHandler = (item)=>{
        // 数理分数：数学+科学
        item["MathematicalScore"] = item["Mathematics"] + item["Science"];
        // 人文分数：社科+文学+艺术
        item["LiteratureScore"] = item["SocialScience"] + item["Literature"] + item["Art"];
        item["MathematicalScore"] = toNumber(toRoundFixed(item["MathematicalScore"]));
        item["LiteratureScore"] = toNumber(toRoundFixed(item["LiteratureScore"]));        
        
      };
      queryStudentTemplate ="html/pre/query/student.pre.cnap.xlsx";
    }else if (type == "pre_cnat"){
      myDataStudentHandler = (item)=>{
        // 数理分数：科学
        item["MathematicalScore"] = item["Science"];
        // 人文分数：社科+文学+艺术
        item["LiteratureScore"] = item["SocialScience"] + item["Art"];       
        item["LiteratureScore"] = toNumber(toRoundFixed(item["LiteratureScore"]));
      };
      queryStudentTemplate ="html/query/student.pre.cnat.xlsx";
      dataInfoNew.areas = [];
      
    }else  if (type == "china_cnad"){
      myDataStudentHandler = (item)=>{
        // 数理分数：数学+科学
        item["MathematicalScore"] = item["Mathematics"] + item["Science"];
        // 人文分数：文学+音乐+艺术
        item["LiteratureScore"] =  item["Literature"] + item["Music"] + item["Art"];
        // 社科分数：社科+经济2000分
        item["SocialScienceScore"] = item["SocialScience"] + item["Economics"] ;

        item["MathematicalScore"] = toNumber(toRoundFixed(item["MathematicalScore"]));
        item["LiteratureScore"] = toNumber(toRoundFixed(item["LiteratureScore"]));
        item["SocialScienceScore"] = toNumber(toRoundFixed(item["SocialScienceScore"]));
      };
      myDataHandler = (excelData,myData)=>{
        let errorList = [];
        let studentMap = toMap(myData["student"]);
        let teamMap = toMap(myData["team"]);        
        myData["student.分析性写作"] = getNewData("分析性写作",excelData,studentMap,{"分析性写作":"分析性写作个人总分"},"UserID");
        myData["team.超级问答"] = getNewData("超级问答",excelData,teamMap,{"超级问答":"超级问答团队总分"},"TeamNumber");
        myData["team.跨学科主题演讲"] = getNewData("跨学科主题演讲",excelData,teamMap,{
          "跨学科主题演讲":"跨学科主题演讲团队总分","最佳演讲者":"最佳演讲者"},"TeamNumber");
        myData["team.学术探究博览"] = getNewData("学术探究博览",excelData,teamMap,{"学术探究博览":"学术探究博览团队总分"},"TeamNumber");
        myData["team.迷你博物馆"] = getNewData("迷你博物馆",excelData,teamMap,{"迷你博物馆":"迷你博物馆团队总分"},"TeamNumber");
        
        myData["student.最佳演讲者"] = getNewData("跨学科主题演讲",excelData,studentMap,{"最佳演讲者":"最佳演讲者"},"最佳演讲者");
        (myData["team"]||[]).forEach(team=>{
          // 通识学术大满贯：跨学科主题演讲+学术探究博览+迷你博物馆分数之和，3000分
          team["通识学术大满贯"] = (team["跨学科主题演讲"]||0) + (team["学术探究博览"]||0) + (team["迷你博物馆"]||0) ;          

          /**
           * 全球站进阶总分：5000分，由以下三个部分分数构成：
            客观知识测评团队总分（占比60%）：21000分转化为3000分
            跨学科主题演讲分数（占比20%）：1000分
            迷你博物馆分数（占比20%）：1000分
           */
            team["全球站进阶总分"] = (team["TeamScore"]||0) / 7 + (team["跨学科主题演讲"]||0) + (team["迷你博物馆"]||0) ;

            team["通识学术大满贯"] = toNumber(toRoundFixed(team["通识学术大满贯"]));
            team["全球站进阶总分"] = toNumber(toRoundFixed(team["全球站进阶总分"]));

            // 通识学术大满贯	学术探究博览	跨学科主题演讲	迷你博物馆	超级问答	全球站进阶总分
            (team["items"]||[]).forEach(stu=>{
              stu["通识学术大满贯"] = team["通识学术大满贯"];
              stu["学术探究博览"] = team["学术探究博览"];
              stu["跨学科主题演讲"] = team["跨学科主题演讲"];
              stu["迷你博物馆"] = team["迷你博物馆"];
              stu["超级问答"] = team["超级问答"];
              stu["全球站进阶总分"] = team["全球站进阶总分"];
             
            })

        })
        
        splitAreaData(myData,"student.分析性写作");
        splitAreaData(myData,"team.学术探究博览");
        splitAreaData(myData,"team.跨学科主题演讲");
        splitAreaData(myData,"team.迷你博物馆");

        return errorList;
      }
      dataInfoNew.dataInfos["分析性写作"] = sheetDataInfo["分析性写作"];
      dataInfoNew.dataInfos["超级问答"] = sheetDataInfo["超级问答"];
      dataInfoNew.dataInfos["跨学科主题演讲"] = sheetDataInfo["跨学科主题演讲"];
      dataInfoNew.dataInfos["学术探究博览"] = sheetDataInfo["学术探究博览"];
      dataInfoNew.dataInfos["迷你博物馆"] = sheetDataInfo["迷你博物馆"];
      // 中国站-全球站研习进阶荣誉, 过滤，同学校只保留2个组
      dataInfoNew.filters["china.cnad.25"] = promoteFilter;
      
      
      queryStudentTemplate ="html/pre/query/student.china.cnad.xlsx";
    }else if (type == "china_cnap"){
      myDataStudentHandler = (item)=>{
        // 数理分数：数学+科学
        item["MathematicalScore"] = item["Mathematics"] + item["Science"];
        // 人文分数：社科+文学+艺术
        item["LiteratureScore"] = item["SocialScience"] + item["Literature"] + item["Art"];

        item["MathematicalScore"] = toNumber(toRoundFixed(item["MathematicalScore"]));
        item["LiteratureScore"] = toNumber(toRoundFixed(item["LiteratureScore"]));
        
      };
      myDataTeamHandler = (item)=>{
        item["进阶分组"] = item["Division"]== "6" || item["Division"]== "7" ? "分组(6-7年级)" :"分组(8年级)"
      }
      myDataHandler = (excelData,myData)=>{
        let errorList = [];
        let studentMap = toMap(myData["student"]);
        let teamMap = toMap(myData["team"]);        
        myData["student.分析性写作"] = getNewData("分析性写作",excelData,studentMap,{"分析性写作":"分析性写作个人总分"},"UserID");
        myData["team.超级问答"] = getNewData("超级问答",excelData,teamMap,{"超级问答":"超级问答团队总分"},"TeamNumber");
        myData["team.主题演讲"] = getNewData("主题演讲",excelData,teamMap,{
          "主题演讲":"主题演讲团队总分","最佳演讲者":"最佳演讲者"},"TeamNumber");
        myData["team.学术探究博览"] = getNewData("学术探究博览",excelData,teamMap,{"学术探究博览":"学术探究博览团队总分"},"TeamNumber");
        myData["team.迷你博物馆"] = getNewData("迷你博物馆",excelData,teamMap,{"迷你博物馆":"迷你博物馆团队总分"},"TeamNumber");
        
        myData["student.最佳演讲者"] = getNewData("主题演讲",excelData,studentMap,{"最佳演讲者":"最佳演讲者"},"最佳演讲者");
        (myData["team"]||[]).forEach(team=>{
          // 通识学术大满贯：主题演讲+学术探究博览+迷你博物馆分数之和，3000分
          team["通识学术大满贯"] = (team["主题演讲"]||0) + (team["学术探究博览"]||0) + (team["迷你博物馆"]||0) ;          

          /**
           * 全球站进阶总分：5000分，由以下三个部分分数构成：
            客观知识测评团队总分（占比60%）：15000分转化为3000分
             主题演讲分数（占比20%）：1000分
            迷你博物馆分数（占比20%）：1000分
           */
          team["全球站进阶总分"] = (team["TeamScore"]||0) / 5 + (team["主题演讲"]||0)  + (team["迷你博物馆"]||0) ;

          team["通识学术大满贯"] = toNumber(toRoundFixed(team["通识学术大满贯"]));
          team["全球站进阶总分"] = toNumber(toRoundFixed(team["全球站进阶总分"]));

          // 通识学术大满贯	学术探究博览	主题演讲	迷你博物馆	超级问答	全球站进阶总分
          (team["items"]||[]).forEach(stu=>{
            stu["通识学术大满贯"] = team["通识学术大满贯"];
            stu["学术探究博览"] = team["学术探究博览"];
            stu["主题演讲"] = team["主题演讲"];
            stu["迷你博物馆"] = team["迷你博物馆"];
            stu["超级问答"] = team["超级问答"];
            stu["全球站进阶总分"] = team["全球站进阶总分"];
            
          })

        })
        
        splitAreaData(myData,"student.分析性写作");
        splitAreaData(myData,"team.学术探究博览");
        splitAreaData(myData,"team.主题演讲");
        splitAreaData(myData,"team.迷你博物馆");

        return errorList;
      }
      dataInfoNew.dataInfos["分析性写作"] = sheetDataInfo["分析性写作"];
      dataInfoNew.dataInfos["超级问答"] = sheetDataInfo["超级问答"];
      dataInfoNew.dataInfos["主题演讲"] = sheetDataInfo["主题演讲"];
      dataInfoNew.dataInfos["学术探究博览"] = sheetDataInfo["学术探究博览"];
      dataInfoNew.dataInfos["迷你博物馆"] = sheetDataInfo["迷你博物馆"];
      // 中国站-全球站研习进阶荣誉, 过滤，同学校只保留2个组
      dataInfoNew.filters["china.cnap.25"] = promoteFilter;


      queryStudentTemplate ="html/pre/query/student.china.cnap.xlsx";
    }else if (type == "china_cnat"){
      
      myDataHandler = (excelData,myData)=>{
        let errorList = [];
        let studentMap = toMap(myData["student"]);
        let teamMap = toMap(myData["team"]);        
        
        myData["team.超级问答"] = getNewData("超级问答",excelData,teamMap,{"超级问答":"超级问答团队总分"},"TeamNumber");
        myData["team.创意演讲"] = getNewData("创意演讲",excelData,teamMap,{
          "创意演讲":"创意演讲团队总分","最佳演讲者":"最佳演讲者"},"TeamNumber");
        myData["team.学术探究博览"] = getNewData("学术探究博览",excelData,teamMap,{"学术探究博览":"学术探究博览团队总分"},"TeamNumber");
        myData["team.迷你博物馆"] = getNewData("迷你博物馆",excelData,teamMap,{"迷你博物馆":"迷你博物馆团队总分"},"TeamNumber");
        
        myData["student.最佳演讲者"] = getNewData("创意演讲",excelData,studentMap,{"最佳演讲者":"最佳演讲者"},"最佳演讲者");
        (myData["team"]||[]).forEach(team=>{
          // 通识学术大满贯：主题演讲+学术探究博览+迷你博物馆分数之和，3000分
          team["通识学术大满贯"] = (team["TeamScore"]||0) + (team["创意演讲"]||0) + (team["学术探究博览"]||0) + (team["迷你博物馆"]||0) ;          

          team["通识学术大满贯"] = toNumber(toRoundFixed(team["通识学术大满贯"]));

          // 通识学术大满贯	学术探究博览	主题演讲	迷你博物馆	超级问答	全球站进阶总分
          (team["items"]||[]).forEach(stu=>{
            stu["通识学术大满贯"] = team["通识学术大满贯"];
            stu["学术探究博览"] = team["学术探究博览"];
            stu["创意演讲"] = team["创意演讲"];
            stu["迷你博物馆"] = team["迷你博物馆"];
            stu["超级问答"] = team["超级问答"];
            
          })

        })
        
        splitAreaData(myData,"team.学术探究博览");
        splitAreaData(myData,"team.创意演讲");
        splitAreaData(myData,"team.迷你博物馆");

        return errorList;
      }
      
      dataInfoNew.dataInfos["超级问答"] = sheetDataInfo["超级问答"];
      dataInfoNew.dataInfos["创意演讲"] = sheetDataInfo["创意演讲"];
      dataInfoNew.dataInfos["学术探究博览"] = sheetDataInfo["学术探究博览"];
      dataInfoNew.dataInfos["迷你博物馆"] = sheetDataInfo["迷你博物馆"];
      
      queryStudentTemplate ="html/query/student.china.cnat.xlsx";     
      
    }else  if (type == "global_cnad"){
      addU20TeamNumber();
      myDataHandler = (excelData,myData)=>{
        let errorList = initU20Team(excelData,myData);
        let studentMap = toMap(myData["student"]);
        let teamMap = toMap(myData["team"]); 
        let u20TeamMap = toMap(myData["u20Team"]); 
        
        myData["team.超级问答"] = getNewData("超级问答",excelData,teamMap,{"超级问答":"超级问答团队总分"},"TeamNumber");
        myData["team.跨学科主题演讲"] = getNewData("跨学科主题演讲",excelData,teamMap,{
          "跨学科主题演讲":"跨学科主题演讲团队总分","最佳演讲者":"最佳演讲者"},"TeamNumber");
        myData["team.学术探究博览"] = getNewData("学术探究博览",excelData,teamMap,{"学术探究博览":"学术探究博览团队总分"},"TeamNumber");        
        myData["student.最佳演讲者"] = getNewData("跨学科主题演讲",excelData,studentMap,{"最佳演讲者":"最佳演讲者"},"最佳演讲者");
        myData["team.U20"] = getNewData("U20",excelData,u20TeamMap,
          {"U20团队总分":"U20团队总分", "U20跨文化协同":"U20跨文化协同", "U20解决方案创新":"U20解决方案创新", "U20洞察与批判性思维":"U20洞察与批判性思维"}
          ,"U20TeamNumber");

        (myData["u20Team"]||[]).forEach(team=>{

          (team["items"]||[]).forEach(stu=>{
            stu["U20团队总分"] = team["U20团队总分"];
            stu["U20跨文化协同"] = team["U20跨文化协同"];
            stu["U20解决方案创新"] = team["U20解决方案创新"];
            stu["U20洞察与批判性思维"] = team["U20洞察与批判性思维"];
            
          })
              
        });
        (myData["team"]||[]).forEach(team=>{
          //- 通识学术大满贯：5000分，由以下三个部分分数构成：
          // 客观知识测评团队总分：21000分转化为3000分（21000/7）
          // 跨学科主题演讲分数：1000分
          // 学术探究博览分数：1000分                
          team["通识学术大满贯"] = toNumber(toRoundFixed(
            (team["跨学科主题演讲"]||0) + (team["学术探究博览"]||0) + (team["TeamScore"]||0 ) / 7         
          ));

          // 通识学术大满贯	学术探究博览	跨学科主题演讲	迷你博物馆	超级问答	全球站进阶总分
          (team["items"]||[]).forEach(stu=>{
            stu["通识学术大满贯"] = team["通识学术大满贯"];
            stu["学术探究博览"] = team["学术探究博览"];
            stu["跨学科主题演讲"] = team["跨学科主题演讲"];
            stu["超级问答"] = team["超级问答"];       

            // - 全球博雅青年领袖Top 100，2000分，由以下两个部分分数构成：
            // 个人总分7000+跨学科主题演讲1000+学术探究博览1000，共9000分，转化为1000分（9000/9）
            // U20总分：1000分             
            stu["青年领袖个人总分"] = toNumber( toRoundFixed(
              ( (stu["跨学科主题演讲"]||0) + (stu["学术探究博览"]||0) + (stu["StudentScore"]||0) ) / 9 + (stu["U20团队总分"]||0) 
            ));                           
          })

        });
        return errorList;
      }
      
      dataInfoNew.dataInfos["超级问答"] = sheetDataInfo["超级问答"];
      dataInfoNew.dataInfos["跨学科主题演讲"] = sheetDataInfo["跨学科主题演讲"];
      dataInfoNew.dataInfos["学术探究博览"] = sheetDataInfo["学术探究博览"];
      dataInfoNew.dataInfos["U20"] = sheetDataInfo["U20"];
           
      queryStudentTemplate ="html/pre/query/student.global.cnad.xlsx";
      dataInfoNew.areas = [];
    }else if (type == "global_cnap"){
      addU20TeamNumber();
      myDataHandler = (excelData,myData)=>{
        let errorList = initU20Team(excelData,myData);
        let studentMap = toMap(myData["student"]);
        let teamMap = toMap(myData["team"]);        
        let u20TeamMap = toMap(myData["u20Team"]); 

        myData["team.超级问答"] = getNewData("超级问答",excelData,teamMap,{"超级问答":"超级问答团队总分"},"TeamNumber");
        myData["team.跨学科主题演讲"] = getNewData("跨学科主题演讲",excelData,teamMap,{
          "跨学科主题演讲":"跨学科主题演讲团队总分","最佳演讲者":"最佳演讲者"},"TeamNumber");
        myData["team.学术探究博览"] = getNewData("学术探究博览",excelData,teamMap,{"学术探究博览":"学术探究博览团队总分"},"TeamNumber");        
        myData["student.最佳演讲者"] = getNewData("跨学科主题演讲",excelData,studentMap,{"最佳演讲者":"最佳演讲者"},"最佳演讲者");
        myData["team.U20"] = getNewData("U20",excelData,u20TeamMap,
          {"U20团队总分":"U20团队总分", "U20跨文化协同":"U20跨文化协同", "U20解决方案创新":"U20解决方案创新", "U20洞察与批判性思维":"U20洞察与批判性思维"}
          ,"U20TeamNumber");

        (myData["u20Team"]||[]).forEach(team=>{

          (team["items"]||[]).forEach(stu=>{
            stu["U20团队总分"] = team["U20团队总分"];
            stu["U20跨文化协同"] = team["U20跨文化协同"];
            stu["U20解决方案创新"] = team["U20解决方案创新"];
            stu["U20洞察与批判性思维"] = team["U20洞察与批判性思维"];
             
          })
              
        });
        (myData["team"]||[]).forEach(team=>{
          //- 通识学术大满贯：5000分，由以下三个部分分数构成：
          // 客观知识测评团队总分：15000分转化为3000分（15000/5）
          // 跨学科主题演讲分数：1000分
          // 学术探究博览分数：1000分      
          team["通识学术大满贯"] = toNumber(toRoundFixed(
            (team["跨学科主题演讲"]||0) + (team["学术探究博览"]||0) + (team["TeamScore"]||0 ) / 5
          ));
       
          // 通识学术大满贯	学术探究博览	跨学科主题演讲	迷你博物馆	超级问答	全球站进阶总分
          (team["items"]||[]).forEach(stu=>{
            stu["通识学术大满贯"] = team["通识学术大满贯"];
            stu["学术探究博览"] = team["学术探究博览"];
            stu["跨学科主题演讲"] = team["跨学科主题演讲"];
            stu["超级问答"] = team["超级问答"];

            // - 全球博雅青年领袖Top 100，2000分，由以下两个部分分数构成：
            // 个人总分5000+跨学科主题演讲1000+学术探究博览1000，共7000分，转化为1000分（7000/7）
            // U20总分：1000分
            stu["青年领袖个人总分"] = toNumber(toRoundFixed(
              ( (stu["跨学科主题演讲"]||0) + (stu["学术探究博览"]||0) + (stu["StudentScore"]||0) ) / 7 + (stu["U20团队总分"]||0) 
            ));       
          })

        });        
        return errorList;
      }
      
      dataInfoNew.dataInfos["超级问答"] = sheetDataInfo["超级问答"];
      dataInfoNew.dataInfos["跨学科主题演讲"] = sheetDataInfo["跨学科主题演讲"];
      dataInfoNew.dataInfos["学术探究博览"] = sheetDataInfo["学术探究博览"];
      dataInfoNew.dataInfos["U20"] = sheetDataInfo["U20"];
           
      queryStudentTemplate ="html/pre/query/student.global.cnap.xlsx";
      dataInfoNew.areas = [];
    }
    
    dataInfoNew.dataInfos.student.fullCols.push(...studentScores);
    dataInfoNew.dataInfos.student.scoreCols.push(...studentScores);
    dataInfoNew.scoreNames = studentScores;
    dataInfoNew.studentHandler = myDataStudentHandler;
    dataInfoNew.teamHandler = myDataTeamHandler;
    dataInfoNew.myDataHandler = myDataHandler;
    dataInfoNew.queryInfo.student.template = queryStudentTemplate;
    dataInfoNew.queryInfo.studentAwards.studentCols.push(...studentScores, ...studentAwardsQueryScores);
    dataInfoNew.queryInfo.student.studentCols.push(...studentScores, ...studentQueryScores);
    
    return dataInfoNew;
  }
  

  return {getDataInfo}

})();
